The invention generally relates to communication networks. More specifically, the invention relates to the implementation of end-to-end quality of service (QoS) in connections over packet-switched networks.
In communications technology, there is an ever-increasing demand for high-performance networks. This increased demand has led to the development of improved networks capable of handling larger volumes of data with smaller delays.
Communications networks, such as ATM networks or the Internet, are generally formed with a number of transmission links interconnected with switches. A transmission link is any medium through which signals are communicated and can be single or multiple twisted pairs, optical fiber, coaxial cable, radio links, or other mediums. A switch is a device with one or more input ports and one or more output ports. The switch directs bits arriving at an input port to the appropriate output port. Switching in communications is accomplished using one of two methods: circuit switching and packet switching. Only packet switching is relevant for the purposes of the present discussion.
In packet switching, the data in a data stream is divided into xe2x80x9cpackets.xe2x80x9d In addition to a portion of data, each packet carries various identifying information about the data, usually in a header. Such identifying information includes routing information, for instance, source and destination addresses for the data. When a packet arrives at a switch, it is stored in a buffer. The switch looks at the routing information in the packet and routes the packet to the appropriate output port. The packets are then forwarded one xe2x80x9chopxe2x80x9d (or switch) at a time, until they reach their destination.
Generally in packet switching, each packet in a particular data stream does not necessarily follow the same path to its destination as the others. Nonetheless, certain types of packet switching, e.g., ATM, do specify the path that the packets are to follow between the switches for a particular end-to-end connection. Such a predetermined path is typically referred to as a xe2x80x9cvirtual channelxe2x80x9d or xe2x80x9cvirtual connection.xe2x80x9d
Unlike general packet switching where packets are not guaranteed to arrive in the order they were sent, when virtual channels are specified in ATM, all of the packets follow the same route along the virtual channel, thereby guaranteeing the order of arrival. These xe2x80x9cvirtual connectionsxe2x80x9d have greatly enhanced the performance of networks in using resources efficiently and can often provide a minimum xe2x80x9cquality of servicexe2x80x9d (xe2x80x9cQoSxe2x80x9d). xe2x80x9cQuality of servicexe2x80x9d (xe2x80x9cQoSxe2x80x9d) generally refers to guaranteed bounds on the delay, loss rate, available throughput, and/or other measures of performance. Thus, if users"" computers are directly connected using an ATM virtual circuit, QoS could be provided end-to-end. Still, ATM is complicated and expensive, and is almost never used to provide QoS to specific user connections.
In contrast, data networks, like those based on the Internet Protocol (IP), were initially designed to provide only xe2x80x9cbest-effortxe2x80x9d delivery services for data packets and do not guarantee packet order of arrival. Still, as the applications of data transmission mature, the need for QoS is increasing, and the trend is to provide some form of QoS. In order to provide QoS, packets need to be associated with a particular class of service, typically indicated with bits in the packet header known as DiffServ bits. Nonetheless, there is only a finite number of classifications identified by these DiffServ bits, usually eight. While some network services that are based upon IP have promised low delays, loss rates, and even available transmission rates, for these data networks, QoS is available only between nodes within a particular subnetwork. QoS is not generally available for end-to-end connections where data travels between subnets, since a given subnetwork cannot distinguish between classes assigned in its own subnetwork or classes assigned in another subnetwork, and there is no universally adopted definition of QoS that the different subnetworks could agree to provide.
In order to provide end-to-end QoS for both inter- and intra-subnet communications, disclosed herein is a system and method to implement end-to-end QoS for connections in IP-based networks, even when the communications are between different subnetworks. In accordance with an embodiment of the invention, QoS is provided between subnet routers (a type of switch) that are attached to the network through a network backbone. An embodiment of the invention can differentiate connections between router pairs and can classify data streams for both inter-subnet and intra-subnet connections using only information provided in the IP headers and without requiring any special tags or other identifiers to be added to the packet.
Specifically, in accordance with an embodiment of the invention, the first accessed node in a subnetwork that receives an IP packet, classifies the packet based upon the IP destination address, the IP source address, and a class of service identifier. In doing so, the node recognizes which end-to-end connection the packet belongs to. Once classified, the node can allocate the resources necessary or otherwise provide a quality of service for the specific connection classification. Some embodiments of the invention refer to information solely in the IP header while others refer to tags (e.g., MPLS or VLAN) that encapsulate information contained in the IP header. In either case, only information from the IP header is necessary to a classification process in accordance with the invention.